#include <regx52.h>
// 引入 stdio.h,string.h 才能使用printf
#include <stdio.h>
#include <string.h>

/**
 * 增加两个按键
 * 按键1按下，终端输出1
 * 按键2按下，终端输出2
 */

void delay(unsigned int z);
void uart_init(void);

sbit BTN1 = P2 ^ 0;
sbit BTN2 = P2 ^ 1;

void main()
{
    int a = 6, d = 15;
    char b = 'A', c[] = "abcde";
    uart_init();
    while (1)
    {
        // printf("a = %d b = %c c = %s d = %x\n", a, b, c, d);
        // printf("hello word!\n");
        // printf("你好世界\n");
        // delay(1000);
        if(BTN1 == 0)
        {
            printf("1");
            delay(500);
        }
        if (BTN2 == 0)
        {
            printf("2");
            delay(500);
        }
    }
}

void uart_init(void)
{
    // 定时器设置寄存器，低4位是定时器0设置，高4位是定时器1设置
    // 定时器1工作于模式2(8位自动重装)
    TMOD = 0x20;
    // 设置波特率为9600
    TH1 = 0xfd;
    TL1 = 0xfd;
    TR1 = 1; // 启动定时器/计数器1

    // 串口模式1(8位UART)，允许接收
    SCON = 0x50;
    // 波特率不加倍
    PCON = 0x00;
    // EA=1;ES=1; 开启总中断和串口中断
    IE = 0x90;
    // 数据可以发送标志
    TI = 1;
}

void delay(unsigned int z)
{
    unsigned int x, y;
    for (x = z; x > 0; x--)
        for (y = 110; y > 0; y--)
            ;
}